home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / short9.c < prev   
C/C++ Source or Header  |  1998-12-22  |  41KB  |  1,455 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "short.h"
  9.  
  10.  
  11. void r321with_capacity(T321* C,T2 a1){
  12. /*[IF*/
  13. if(((C)->_capacity/*4*/)<(a1)){
  14. C->_storage=calloc(a1,sizeof(T0*));
  15. C->_capacity=a1;
  16. }
  17. /*FI]*/
  18. C->_upper=-(1);
  19. }
  20. /*No:FIXED_ARRAY[RUN_CLASS].clear_all*/
  21.  
  22.  
  23. void r321add_last(T321* C,T0* a1){
  24. T2 _new_capacity=0;
  25. /*[IF*/
  26. if((((C)->_upper/*8*/)+(1))<=(((C)->_capacity/*4*/)-(1))){
  27. C->_upper=((C)->_upper/*8*/)+(1);
  28. }
  29.  else if(((C)->_capacity/*4*/)==(0)){
  30. C->_storage=calloc(2,sizeof(T0*));
  31. C->_capacity=2;
  32. C->_upper=0;
  33. }
  34. else{
  35. _new_capacity=(2)*((C)->_capacity/*4*/);
  36. C->_storage=r322realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
  37. C->_capacity=_new_capacity;
  38. C->_upper=((C)->_upper/*8*/)+(1);
  39. }
  40. /*FI]*/
  41. /*[IRF3.5put*/((C)->_storage/*0*/)[(C)->_upper/*8*/]=(a1);
  42. /*]*/
  43. }
  44. /*No:FIXED_ARRAY[RUN_CLASS].item*/
  45. /*No:FIXED_ARRAY[RUN_CLASS].set_all_with*/
  46. /*No:FIXED_ARRAY[RUN_CLASS].count*/
  47.  
  48.  
  49. void r321resize(T321* C,T2 a1){
  50. T0* _elt_default=NULL;
  51. T2 _i=0;
  52. T2 _new_capacity=0;
  53. /*[IF*/
  54. if((a1)<=(/*(IRF4.6count*/((C)->_upper/*8*/)+(1)/*)*/)){
  55. C->_upper=(a1)-(1);
  56. }
  57. else{
  58. _new_capacity=a1;
  59. /*[IF*/
  60. if(((C)->_capacity/*4*/)<(_new_capacity)){
  61. /*[IF*/
  62. if(((C)->_capacity/*4*/)==(0)){
  63. C->_storage=calloc(_new_capacity,sizeof(T0*));
  64. }
  65. else{
  66. C->_storage=r322realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
  67. }
  68. /*FI]*/
  69. C->_capacity=_new_capacity;
  70. }
  71. /*FI]*/
  72. _new_capacity=(C)->_upper/*8*/;
  73. C->_upper=(a1)-(1);
  74. _i=(C)->_upper/*8*/;
  75. while (!((_i)==(_new_capacity))) {
  76. /*[IRF3.5put*/((C)->_storage/*0*/)[_i]=(_elt_default);
  77. /*]*/
  78. _i=(_i)-(1);
  79. }
  80. }
  81. /*FI]*/
  82. }
  83.  
  84.  
  85. void r321make(T321* C,T2 a1){
  86. /*[IF*/
  87. if((a1)==(0)){
  88. C->_upper=-(1);
  89. }
  90.  else if(((C)->_capacity/*4*/)==(0)){
  91. C->_storage=calloc(a1,sizeof(T0*));
  92. C->_capacity=a1;
  93. C->_upper=(a1)-(1);
  94. }
  95.  else if(((C)->_capacity/*4*/)<(a1)){
  96. C->_storage=calloc(a1,sizeof(T0*));
  97. C->_capacity=a1;
  98. C->_upper=(a1)-(1);
  99. }
  100. else{
  101. C->_upper=(a1)-(1);
  102. /*[IRF3.6clear_all*/{T321* C1=C;
  103. T0* __value=NULL;
  104. /*[IRF3.6set_all_with*/{T321* C2=C1;
  105. T0* c1=__value;
  106. r322set_all_with((C2)->_storage/*0*/,c1,(C2)->_upper/*8*/);
  107. }/*]*/
  108. }/*]*/
  109. }
  110. /*FI]*/
  111. }
  112.  
  113.  
  114. T2 r321fast_index_of(T321* C,T0* a1){
  115. T2 R=0;
  116. R=r322fast_index_of((C)->_storage/*0*/,a1,(C)->_upper/*8*/);
  117. return R;
  118. }
  119. /*No:FIXED_ARRAY[RUN_CLASS].upper*/
  120. /*No:FIXED_ARRAY[RUN_CLASS].capacity*/
  121. /*No:FIXED_ARRAY[RUN_CLASS].put*/
  122. /*No:FIXED_ARRAY[RUN_CLASS].storage*/
  123.  
  124.  
  125. void r92with_capacity(T92* C,T2 a1){
  126. /*[IF*/
  127. if(((C)->_capacity/*4*/)<(a1)){
  128. C->_storage=calloc(a1,sizeof(T0*));
  129. C->_capacity=a1;
  130. }
  131. /*FI]*/
  132. C->_upper=-(1);
  133. }
  134.  
  135.  
  136. T0* r92twin(T92* C){
  137. T0* R=NULL;
  138. R=malloc(sizeof(*C));
  139. *((T92*)R)=M92;
  140. r92copy(((T92*)R),((T0*)C));
  141. return R;
  142. }
  143. /*No:FIXED_ARRAY[E_FEATURE].clear_all*/
  144.  
  145.  
  146. void r92add_last(T92* C,T0* a1){
  147. T2 _new_capacity=0;
  148. /*[IF*/
  149. if((((C)->_upper/*8*/)+(1))<=(((C)->_capacity/*4*/)-(1))){
  150. C->_upper=((C)->_upper/*8*/)+(1);
  151. }
  152.  else if(((C)->_capacity/*4*/)==(0)){
  153. C->_storage=calloc(2,sizeof(T0*));
  154. C->_capacity=2;
  155. C->_upper=0;
  156. }
  157. else{
  158. _new_capacity=(2)*((C)->_capacity/*4*/);
  159. C->_storage=r93realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
  160. C->_capacity=_new_capacity;
  161. C->_upper=((C)->_upper/*8*/)+(1);
  162. }
  163. /*FI]*/
  164. /*[IRF3.5put*/((C)->_storage/*0*/)[(C)->_upper/*8*/]=(a1);
  165. /*]*/
  166. }
  167. /*No:FIXED_ARRAY[E_FEATURE].set_all_with*/
  168. /*No:FIXED_ARRAY[E_FEATURE].item*/
  169. /*No:FIXED_ARRAY[E_FEATURE].count*/
  170.  
  171.  
  172. void r92resize(T92* C,T2 a1){
  173. T0* _elt_default=NULL;
  174. T2 _i=0;
  175. T2 _new_capacity=0;
  176. /*[IF*/
  177. if((a1)<=(/*(IRF4.6count*/((C)->_upper/*8*/)+(1)/*)*/)){
  178. C->_upper=(a1)-(1);
  179. }
  180. else{
  181. _new_capacity=a1;
  182. /*[IF*/
  183. if(((C)->_capacity/*4*/)<(_new_capacity)){
  184. /*[IF*/
  185. if(((C)->_capacity/*4*/)==(0)){
  186. C->_storage=calloc(_new_capacity,sizeof(T0*));
  187. }
  188. else{
  189. C->_storage=r93realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
  190. }
  191. /*FI]*/
  192. C->_capacity=_new_capacity;
  193. }
  194. /*FI]*/
  195. _new_capacity=(C)->_upper/*8*/;
  196. C->_upper=(a1)-(1);
  197. _i=(C)->_upper/*8*/;
  198. while (!((_i)==(_new_capacity))) {
  199. /*[IRF3.5put*/((C)->_storage/*0*/)[_i]=(_elt_default);
  200. /*]*/
  201. _i=(_i)-(1);
  202. }
  203. }
  204. /*FI]*/
  205. }
  206.  
  207.  
  208. void r92make(T92* C,T2 a1){
  209. /*[IF*/
  210. if((a1)==(0)){
  211. C->_upper=-(1);
  212. }
  213.  else if(((C)->_capacity/*4*/)==(0)){
  214. C->_storage=calloc(a1,sizeof(T0*));
  215. C->_capacity=a1;
  216. C->_upper=(a1)-(1);
  217. }
  218.  else if(((C)->_capacity/*4*/)<(a1)){
  219. C->_storage=calloc(a1,sizeof(T0*));
  220. C->_capacity=a1;
  221. C->_upper=(a1)-(1);
  222. }
  223. else{
  224. C->_upper=(a1)-(1);
  225. /*[IRF3.6clear_all*/{T92* C1=C;
  226. T0* __value=NULL;
  227. /*[IRF3.6set_all_with*/{T92* C2=C1;
  228. T0* c1=__value;
  229. r93set_all_with((C2)->_storage/*0*/,c1,(C2)->_upper/*8*/);
  230. }/*]*/
  231. }/*]*/
  232. }
  233. /*FI]*/
  234. }
  235. /*No:FIXED_ARRAY[E_FEATURE].upper*/
  236. /*No:FIXED_ARRAY[E_FEATURE].clear*/
  237.  
  238.  
  239. void r92copy(T92* C,T0* a1){
  240. T2 _new_capacity=0;
  241. T2 _other_upper=0;
  242. _other_upper=(((T92*)a1))->_upper/*8*/;
  243. /*[IF*/
  244. if((_other_upper)>=(0)){
  245. _new_capacity=(_other_upper)+(1);
  246. /*[IF*/
  247. if(((C)->_capacity/*4*/)<(_new_capacity)){
  248. C->_capacity=_new_capacity;
  249. C->_storage=calloc(_new_capacity,sizeof(T0*));
  250. }
  251.  else if(((C)->_capacity/*4*/)>(0)){
  252. r93clear_all((C)->_storage/*0*/,((C)->_capacity/*4*/)-(1));
  253. }
  254. /*FI]*/
  255. r93copy_from((C)->_storage/*0*/,(((T92*)a1))->_storage/*0*/,_other_upper);
  256. }
  257.  else if(((C)->_capacity/*4*/)>(0)){
  258. r93clear_all((C)->_storage/*0*/,((C)->_capacity/*4*/)-(1));
  259. }
  260. /*FI]*/
  261. C->_upper=_other_upper;
  262. }
  263.  
  264.  
  265. T6 r92empty(T92* C){
  266. T6 R=0;
  267. R=(/*(IRF4.6count*/((C)->_upper/*8*/)+(1)/*)*/)==(0);
  268. return R;
  269. }
  270. /*No:FIXED_ARRAY[E_FEATURE].capacity*/
  271. /*No:FIXED_ARRAY[E_FEATURE].put*/
  272. /*No:FIXED_ARRAY[E_FEATURE].storage*/
  273.  
  274.  
  275. void r311with_capacity(T311* C,T2 a1){
  276. /*[IF*/
  277. if(((C)->_capacity/*8*/)<(a1)){
  278. C->_storage=calloc(a1,sizeof(T0*));
  279. C->_capacity=a1;
  280. }
  281. /*FI]*/
  282. C->_upper=-(1);
  283. }
  284.  
  285.  
  286. void r311clear_all(T311* C){
  287. T0* _value=NULL;
  288. /*[IRF3.6set_all_with*/{T311* C1=C;
  289. T0* b1=_value;
  290. r313set_all_with((C1)->_storage/*4*/,b1,(C1)->_upper/*12*/);
  291. }/*]*/
  292. }
  293.  
  294.  
  295. void r311add_last(T311* C,T0* a1){
  296. T2 _new_capacity=0;
  297. /*[IF*/
  298. if((((C)->_upper/*12*/)+(1))<=(((C)->_capacity/*8*/)-(1))){
  299. C->_upper=((C)->_upper/*12*/)+(1);
  300. }
  301.  else if(((C)->_capacity/*8*/)==(0)){
  302. C->_storage=calloc(2,sizeof(T0*));
  303. C->_capacity=2;
  304. C->_upper=0;
  305. }
  306. else{
  307. _new_capacity=(2)*((C)->_capacity/*8*/);
  308. C->_storage=r313realloc((C)->_storage/*4*/,(C)->_capacity/*8*/,_new_capacity);
  309. C->_capacity=_new_capacity;
  310. C->_upper=((C)->_upper/*12*/)+(1);
  311. }
  312. /*FI]*/
  313. /*[IRF3.6put*/{T311* C1=C;
  314. T0* b1=a1;
  315. T2 b2=(C)->_upper/*12*/;
  316. ((C1)->_storage/*4*/)[b2]=(b1);
  317. }/*]*/
  318. }
  319. /*No:FIXED_ARRAY[RUN_FEATURE].set_all_with*/
  320.  
  321.  
  322. T0* r311item(T311* C,T2 a1){
  323. T0* R=NULL;
  324. R=((C)->_storage/*4*/)[a1];
  325. return R;
  326. }
  327.  
  328.  
  329. T6 r311valid_index(T311* C,T2 a1){
  330. T6 R=0;
  331. R=((0)<=(a1))&&((a1)<=((C)->_upper/*12*/));
  332. return R;
  333. }
  334.  
  335.  
  336. T2 r311count(T311* C){
  337. T2 R=0;
  338. R=((C)->_upper/*12*/)+(1);
  339. return R;
  340. }
  341. /*No:FIXED_ARRAY[RUN_FEATURE].lower*/
  342.  
  343.  
  344. void r311resize(T311* C,T2 a1){
  345. T0* _elt_default=NULL;
  346. T2 _i=0;
  347. T2 _new_capacity=0;
  348. /*[IF*/
  349. if((a1)<=(r311count(C))){
  350. C->_upper=(a1)-(1);
  351. }
  352. else{
  353. _new_capacity=a1;
  354. /*[IF*/
  355. if(((C)->_capacity/*8*/)<(_new_capacity)){
  356. /*[IF*/
  357. if(((C)->_capacity/*8*/)==(0)){
  358. C->_storage=calloc(_new_capacity,sizeof(T0*));
  359. }
  360. else{
  361. C->_storage=r313realloc((C)->_storage/*4*/,(C)->_capacity/*8*/,_new_capacity);
  362. }
  363. /*FI]*/
  364. C->_capacity=_new_capacity;
  365. }
  366. /*FI]*/
  367. _new_capacity=(C)->_upper/*12*/;
  368. C->_upper=(a1)-(1);
  369. _i=(C)->_upper/*12*/;
  370. while (!((_i)==(_new_capacity))) {
  371. /*[IRF3.6put*/{T311* C1=C;
  372. T0* b1=_elt_default;
  373. T2 b2=_i;
  374. ((C1)->_storage/*4*/)[b2]=(b1);
  375. }/*]*/
  376. _i=(_i)-(1);
  377. }
  378. }
  379. /*FI]*/
  380. }
  381.  
  382.  
  383. void r311make(T311* C,T2 a1){
  384. /*[IF*/
  385. if((a1)==(0)){
  386. C->_upper=-(1);
  387. }
  388.  else if(((C)->_capacity/*8*/)==(0)){
  389. C->_storage=calloc(a1,sizeof(T0*));
  390. C->_capacity=a1;
  391. C->_upper=(a1)-(1);
  392. }
  393.  else if(((C)->_capacity/*8*/)<(a1)){
  394. C->_storage=calloc(a1,sizeof(T0*));
  395. C->_capacity=a1;
  396. C->_upper=(a1)-(1);
  397. }
  398. else{
  399. C->_upper=(a1)-(1);
  400. r311clear_all(C);
  401. }
  402. /*FI]*/
  403. }
  404.  
  405.  
  406. T6 r311fast_has(T311* C,T0* a1){
  407. T6 R=0;
  408. R=r311valid_index(C,r311fast_index_of(C,a1));
  409. return R;
  410. }
  411.  
  412.  
  413. T2 r311fast_index_of(T311* C,T0* a1){
  414. T2 R=0;
  415. R=r313fast_index_of((C)->_storage/*4*/,a1,(C)->_upper/*12*/);
  416. return R;
  417. }
  418. /*No:FIXED_ARRAY[RUN_FEATURE].upper*/
  419.  
  420.  
  421. void r311swap(T311* C,T2 a1,T2 a2){
  422. T0* _tmp=NULL;
  423. _tmp=r311item(C,a1);
  424. /*[IRF3.6put*/{T311* C1=C;
  425. T0* b1=r311item(C,a2);
  426. T2 b2=a1;
  427. ((C1)->_storage/*4*/)[b2]=(b1);
  428. }/*]*/
  429. /*[IRF3.6put*/{T311* C1=C;
  430. T0* b1=_tmp;
  431. T2 b2=a2;
  432. ((C1)->_storage/*4*/)[b2]=(b1);
  433. }/*]*/
  434. }
  435. /*No:FIXED_ARRAY[RUN_FEATURE].capacity*/
  436. /*No:FIXED_ARRAY[RUN_FEATURE].put*/
  437. /*No:FIXED_ARRAY[RUN_FEATURE].storage*/
  438.  
  439.  
  440. void r205with_capacity(T205* C,T2 a1){
  441. /*[IF*/
  442. if(((C)->_capacity/*4*/)<(a1)){
  443. C->_storage=calloc(a1,sizeof(T0*));
  444. C->_capacity=a1;
  445. }
  446. /*FI]*/
  447. C->_upper=-(1);
  448. }
  449.  
  450.  
  451. T0* r205twin(T205* C){
  452. T0* R=NULL;
  453. R=malloc(sizeof(*C));
  454. *((T205*)R)=M205;
  455. r205copy(((T205*)R),((T0*)C));
  456. return R;
  457. }
  458.  
  459.  
  460. void r205add_last(T205* C,T0* a1){
  461. T2 _new_capacity=0;
  462. /*[IF*/
  463. if((((C)->_upper/*8*/)+(1))<=(((C)->_capacity/*4*/)-(1))){
  464. C->_upper=((C)->_upper/*8*/)+(1);
  465. }
  466.  else if(((C)->_capacity/*4*/)==(0)){
  467. C->_storage=calloc(2,sizeof(T0*));
  468. C->_capacity=2;
  469. C->_upper=0;
  470. }
  471. else{
  472. _new_capacity=(2)*((C)->_capacity/*4*/);
  473. C->_storage=r212realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
  474. C->_capacity=_new_capacity;
  475. C->_upper=((C)->_upper/*8*/)+(1);
  476. }
  477. /*FI]*/
  478. /*[IRF3.5put*/((C)->_storage/*0*/)[(C)->_upper/*8*/]=(a1);
  479. /*]*/
  480. }
  481. /*No:FIXED_ARRAY[INSTRUCTION].item*/
  482. /*No:FIXED_ARRAY[INSTRUCTION].upper*/
  483.  
  484.  
  485. void r205copy(T205* C,T0* a1){
  486. T2 _new_capacity=0;
  487. T2 _other_upper=0;
  488. _other_upper=(((T205*)a1))->_upper/*8*/;
  489. /*[IF*/
  490. if((_other_upper)>=(0)){
  491. _new_capacity=(_other_upper)+(1);
  492. /*[IF*/
  493. if(((C)->_capacity/*4*/)<(_new_capacity)){
  494. C->_capacity=_new_capacity;
  495. C->_storage=calloc(_new_capacity,sizeof(T0*));
  496. }
  497.  else if(((C)->_capacity/*4*/)>(0)){
  498. r212clear_all((C)->_storage/*0*/,((C)->_capacity/*4*/)-(1));
  499. }
  500. /*FI]*/
  501. r212copy_from((C)->_storage/*0*/,(((T205*)a1))->_storage/*0*/,_other_upper);
  502. }
  503.  else if(((C)->_capacity/*4*/)>(0)){
  504. r212clear_all((C)->_storage/*0*/,((C)->_capacity/*4*/)-(1));
  505. }
  506. /*FI]*/
  507. C->_upper=_other_upper;
  508. }
  509. /*No:FIXED_ARRAY[INSTRUCTION].capacity*/
  510. /*No:FIXED_ARRAY[INSTRUCTION].storage*/
  511. /*No:FIXED_ARRAY[INSTRUCTION].put*/
  512.  
  513.  
  514. T0* r98twin(T98* C){
  515. T0* R=NULL;
  516. R=malloc(sizeof(*C));
  517. *((T98*)R)=M98;
  518. r98copy(((T98*)R),((T0*)C));
  519. return R;
  520. }
  521.  
  522.  
  523. void r98add_last(T98* C,T0* a1){
  524. T2 _new_capacity=0;
  525. /*[IF*/
  526. if(((C)->_capacity/*8*/)<((r98count(C))+(1))){
  527. /*[IF*/
  528. if(((C)->_capacity/*8*/)==(0)){
  529. C->_capacity=16;
  530. C->_storage=calloc((C)->_capacity/*8*/,sizeof(T0*));
  531. }
  532. else{
  533. _new_capacity=(2)*((C)->_capacity/*8*/);
  534. C->_storage=r99realloc((C)->_storage/*4*/,(C)->_capacity/*8*/,_new_capacity);
  535. C->_capacity=_new_capacity;
  536. }
  537. /*FI]*/
  538. }
  539. /*FI]*/
  540. C->_upper=((C)->_upper/*12*/)+(1);
  541. /*[IRF3.6put*/{T98* C1=C;
  542. T0* b1=a1;
  543. T2 b2=(C)->_upper/*12*/;
  544. ((C1)->_storage/*4*/)[(b2)-((C1)->_lower/*16*/)]=(b1);
  545. }/*]*/
  546. }
  547.  
  548.  
  549. T0* r98item(T98* C,T2 a1){
  550. T0* R=NULL;
  551. R=((C)->_storage/*4*/)[(a1)-((C)->_lower/*16*/)];
  552. return R;
  553. }
  554.  
  555.  
  556. T2 r98count(T98* C){
  557. T2 R=0;
  558. R=(((C)->_upper/*12*/)-((C)->_lower/*16*/))+(1);
  559. return R;
  560. }
  561. /*No:ARRAY[EXPRESSION].lower*/
  562. /*No:ARRAY[EXPRESSION].upper*/
  563.  
  564.  
  565. void r98copy(T98* C,T0* a1){
  566. T2 _needed_capacity=0;
  567. C->_lower=/*X98lower*/((T2)(((T98*)a1))->_lower/*16*/);
  568. C->_upper=/*X98upper*/((T2)(((T98*)a1))->_upper/*12*/);
  569. _needed_capacity=(((C)->_upper/*12*/)-((C)->_lower/*16*/))+(1);
  570. /*[IF*/
  571. if(((C)->_capacity/*8*/)<(_needed_capacity)){
  572. C->_capacity=_needed_capacity;
  573. C->_storage=calloc((C)->_capacity/*8*/,sizeof(T0*));
  574. }
  575. /*FI]*/
  576. /*[IF*/
  577. if((_needed_capacity)>(0)){
  578. r99copy_from((C)->_storage/*4*/,/*X98storage*/((T99)(((T98*)a1))->_storage/*4*/),(_needed_capacity)-(1));
  579. }
  580. /*FI]*/
  581. }
  582. /*No:ARRAY[EXPRESSION].capacity*/
  583. /*No:ARRAY[EXPRESSION].put*/
  584. /*No:ARRAY[EXPRESSION].storage*/
  585.  
  586.  
  587. void r68with_capacity(T68* C,T2 a1){
  588. /*[IF*/
  589. if(((C)->_capacity/*4*/)<(a1)){
  590. C->_storage=calloc(a1,sizeof(T0*));
  591. C->_capacity=a1;
  592. }
  593. /*FI]*/
  594. C->_upper=-(1);
  595. }
  596.  
  597.  
  598. T6 r68has(T68* C,T0* a1){
  599. T6 R=0;
  600. R=r68valid_index(C,r68index_of(C,a1));
  601. return R;
  602. }
  603.  
  604.  
  605. void r68add_last(T68* C,T0* a1){
  606. T2 _new_capacity=0;
  607. /*[IF*/
  608. if((((C)->_upper/*8*/)+(1))<=(((C)->_capacity/*4*/)-(1))){
  609. C->_upper=((C)->_upper/*8*/)+(1);
  610. }
  611.  else if(((C)->_capacity/*4*/)==(0)){
  612. C->_storage=calloc(2,sizeof(T0*));
  613. C->_capacity=2;
  614. C->_upper=0;
  615. }
  616. else{
  617. _new_capacity=(2)*((C)->_capacity/*4*/);
  618. C->_storage=r70realloc((C)->_storage/*0*/,(C)->_capacity/*4*/,_new_capacity);
  619. C->_capacity=_new_capacity;
  620. C->_upper=((C)->_upper/*8*/)+(1);
  621. }
  622. /*FI]*/
  623. /*[IRF3.5put*/((C)->_storage/*0*/)[(C)->_upper/*8*/]=(a1);
  624. /*]*/
  625. }
  626. /*No:FIXED_ARRAY[POSITION].item*/
  627.  
  628.  
  629. T6 r68valid_index(T68* C,T2 a1){
  630. T6 R=0;
  631. R=((0)<=(a1))&&((a1)<=((C)->_upper/*8*/));
  632. return R;
  633. }
  634. /*No:FIXED_ARRAY[POSITION].first*/
  635. /*No:FIXED_ARRAY[POSITION].lower*/
  636.  
  637.  
  638. T6 r68fast_has(T68* C,T0* a1){
  639. T6 R=0;
  640. R=r68valid_index(C,r68fast_index_of(C,a1));
  641. return R;
  642. }
  643.  
  644.  
  645. T2 r68fast_index_of(T68* C,T0* a1){
  646. T2 R=0;
  647. R=r70fast_index_of((C)->_storage/*0*/,a1,(C)->_upper/*8*/);
  648. return R;
  649. }
  650. /*No:FIXED_ARRAY[POSITION].upper*/
  651. /*No:FIXED_ARRAY[POSITION].clear*/
  652.  
  653.  
  654. T2 r68index_of(T68* C,T0* a1){
  655. T2 R=0;
  656. R=r70index_of((C)->_storage/*0*/,a1,(C)->_upper/*8*/);
  657. return R;
  658. }
  659. /*No:FIXED_ARRAY[POSITION].capacity*/
  660. /*No:FIXED_ARRAY[POSITION].put*/
  661. /*No:FIXED_ARRAY[POSITION].storage*/
  662. /*No:DICTIONARY[STRING,STRING].Default_size*/
  663.  
  664.  
  665. void r72with_capacity(T72* C,T2 a1){
  666. T2 _i=0;
  667. {T26*n=malloc(sizeof(*n));
  668. *n=M26;
  669. r26make(n,a1);
  670. C->_keys=(T0*)n;
  671. }
  672. {T26*n=malloc(sizeof(*n));
  673. *n=M26;
  674. r26make(n,a1);
  675. C->_store=(T0*)n;
  676. }
  677. C->_modulus=(3)*(a1);
  678. {T62*n=malloc(sizeof(*n));
  679. *n=M62;
  680. r62make(n,(C)->_modulus/*8*/);
  681. C->_buckets=(T0*)n;
  682. }
  683. /*[IRF3.6set_all_with*/{T62* C1=(T62*)((C)->_buckets/*12*/);
  684. T2 b1=-(1);
  685. r63set_all_with((C1)->_storage/*0*/,b1,(C1)->_upper/*8*/);
  686. }/*]*/
  687. {T62*n=malloc(sizeof(*n));
  688. *n=M62;
  689. r62make(n,a1);
  690. C->_chain=(T0*)n;
  691. }
  692. _i=((T62*)((C)->_chain/*16*/))->_upper/*8*/;
  693. C->_first_free_slot=_i;
  694. while (!((_i)<(0))) {
  695. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]=((_i)-(1));
  696. /*]*/
  697. _i=(_i)-(1);
  698. }
  699. C->_cache_keys_idx=-(1);
  700. C->_cache_user_idx=-(1);
  701. C->_count=0;
  702. }
  703.  
  704.  
  705. T6 r72has(T72* C,T0* a1){
  706. T6 R=0;
  707. /*[IF*/
  708. if((((C)->_cache_keys_idx/*24*/)<(0))||(!(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))){
  709. C->_cache_user_idx=-(1);
  710. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((C)->_modulus/*8*/)]/*)*/;
  711. while (!((((C)->_cache_keys_idx/*24*/)<(0))||(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))) {
  712. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  713. }
  714. }
  715. /*FI]*/
  716. R=((C)->_cache_keys_idx/*24*/)>=(0);
  717. return R;
  718. }
  719. /*No:DICTIONARY[STRING,STRING].cache_keys_idx*/
  720. /*No:DICTIONARY[STRING,STRING].cache_user_idx*/
  721.  
  722.  
  723. void r72expand(T72* C){
  724. T2 _i=0;
  725. _i=/*(IRF4.6count*/(((T26*)((C)->_keys/*0*/))->_upper/*8*/)+(1)/*)*/;
  726. r72resize_buckets(C,((_i)*(2))*(3));
  727. while (!((_i)==(0))) {
  728. r62add_last((T62*)((C)->_chain/*16*/),(C)->_first_free_slot/*20*/);
  729. C->_first_free_slot=((T62*)((C)->_chain/*16*/))->_upper/*8*/;
  730. _i=(_i)-(1);
  731. }
  732. r26resize((T26*)((C)->_keys/*0*/),/*(IRF4.6count*/(((T62*)((C)->_chain/*16*/))->_upper/*8*/)+(1)/*)*/);
  733. r26resize((T26*)((C)->_store/*4*/),/*(IRF4.6count*/(((T62*)((C)->_chain/*16*/))->_upper/*8*/)+(1)/*)*/);
  734. }
  735.  
  736.  
  737. void r72resize_buckets(T72* C,T2 a1){
  738. T2 _i=0;
  739. T2 _h=0;
  740. C->_modulus=a1;
  741. r62resize((T62*)((C)->_buckets/*12*/),a1);
  742. /*[IRF3.6set_all_with*/{T62* C1=(T62*)((C)->_buckets/*12*/);
  743. T2 b1=-(1);
  744. r63set_all_with((C1)->_storage/*0*/,b1,(C1)->_upper/*8*/);
  745. }/*]*/
  746. while (!(((C)->_first_free_slot/*20*/)<(0))) {
  747. _i=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]/*)*/;
  748. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]=(-(2));
  749. /*]*/
  750. C->_first_free_slot=_i;
  751. }
  752. _i=((T62*)((C)->_chain/*16*/))->_upper/*8*/;
  753. while (!((_i)<(0))) {
  754. /*[IF*/
  755. if((/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]/*)*/)==(-(2))){
  756. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]=((C)->_first_free_slot/*20*/);
  757. /*]*/
  758. C->_first_free_slot=_i;
  759. }
  760. else{
  761. _h=(r7hash_code((T7*)(/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[_i]/*)*/)))%(a1);
  762. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]=(/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]/*)*/);
  763. /*]*/
  764. /*[IRF3.5put*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]=(_i);
  765. /*]*/
  766. }
  767. /*FI]*/
  768. _i=(_i)-(1);
  769. }
  770. }
  771. /*No:DICTIONARY[STRING,STRING].buckets_keys_ratio*/
  772. /*No:DICTIONARY[STRING,STRING].first_free_slot*/
  773.  
  774.  
  775. T0* r72at(T72* C,T0* a1){
  776. T0* R=NULL;
  777. /*[IF*/
  778. if((((C)->_cache_keys_idx/*24*/)<(0))||(!(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))){
  779. C->_cache_user_idx=-(1);
  780. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((C)->_modulus/*8*/)]/*)*/;
  781. while (!(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/))) {
  782. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  783. }
  784. }
  785. /*FI]*/
  786. R=/*(IRF4.6item*/(((T26*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  787. return R;
  788. }
  789. /*No:DICTIONARY[STRING,STRING].modulus*/
  790. /*No:DICTIONARY[STRING,STRING].count*/
  791. /*No:DICTIONARY[STRING,STRING].chain*/
  792. /*No:DICTIONARY[STRING,STRING].make*/
  793. /*No:DICTIONARY[STRING,STRING].store*/
  794. /*No:DICTIONARY[STRING,STRING].buckets*/
  795. /*No:DICTIONARY[STRING,STRING].keys*/
  796.  
  797.  
  798. void r72put(T72* C,T0* a1,T0* a2){
  799. T2 _h=0;
  800. /*[IF*/
  801. if((((C)->_cache_keys_idx/*24*/)<(0))||(!(r7is_equal(((T7*)a2),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))){
  802. C->_cache_user_idx=-(1);
  803. _h=(r7hash_code(((T7*)a2)))%((C)->_modulus/*8*/);
  804. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]/*)*/;
  805. while (!((((C)->_cache_keys_idx/*24*/)<(0))||(r7is_equal(((T7*)a2),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))) {
  806. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  807. }
  808. /*[IF*/
  809. if(((C)->_cache_keys_idx/*24*/)<(0)){
  810. /*[IF*/
  811. if(((C)->_first_free_slot/*20*/)<(0)){
  812. r72expand(C);
  813. _h=(r7hash_code(((T7*)a2)))%((C)->_modulus/*8*/);
  814. }
  815. /*FI]*/
  816. /*[IRF3.5put*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]=(a2);
  817. /*]*/
  818. /*[IRF3.5put*/(((T26*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]=(a1);
  819. /*]*/
  820. C->_cache_keys_idx=(C)->_first_free_slot/*20*/;
  821. C->_first_free_slot=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]/*)*/;
  822. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]=(/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]/*)*/);
  823. /*]*/
  824. /*[IRF3.5put*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]=((C)->_cache_keys_idx/*24*/);
  825. /*]*/
  826. C->_count=((C)->_count/*32*/)+(1);
  827. }
  828. else{
  829. /*[IRF3.5put*/(((T26*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]=(a1);
  830. /*]*/
  831. }
  832. /*FI]*/
  833. }
  834. else{
  835. /*[IRF3.5put*/(((T26*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]=(a1);
  836. /*]*/
  837. }
  838. /*FI]*/
  839. }
  840. /*No:DICTIONARY[BASE_CLASS,STRING].Default_size*/
  841.  
  842.  
  843. void r61with_capacity(T61* C,T2 a1){
  844. T2 _i=0;
  845. {T26*n=malloc(sizeof(*n));
  846. *n=M26;
  847. r26make(n,a1);
  848. C->_keys=(T0*)n;
  849. }
  850. {T64*n=malloc(sizeof(*n));
  851. *n=M64;
  852. r64make(n,a1);
  853. C->_store=(T0*)n;
  854. }
  855. C->_modulus=(3)*(a1);
  856. {T62*n=malloc(sizeof(*n));
  857. *n=M62;
  858. r62make(n,(C)->_modulus/*8*/);
  859. C->_buckets=(T0*)n;
  860. }
  861. /*[IRF3.6set_all_with*/{T62* C1=(T62*)((C)->_buckets/*12*/);
  862. T2 b1=-(1);
  863. r63set_all_with((C1)->_storage/*0*/,b1,(C1)->_upper/*8*/);
  864. }/*]*/
  865. {T62*n=malloc(sizeof(*n));
  866. *n=M62;
  867. r62make(n,a1);
  868. C->_chain=(T0*)n;
  869. }
  870. _i=((T62*)((C)->_chain/*16*/))->_upper/*8*/;
  871. C->_first_free_slot=_i;
  872. while (!((_i)<(0))) {
  873. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]=((_i)-(1));
  874. /*]*/
  875. _i=(_i)-(1);
  876. }
  877. C->_cache_keys_idx=-(1);
  878. C->_cache_user_idx=-(1);
  879. C->_count=0;
  880. }
  881.  
  882.  
  883. T6 r61has(T61* C,T0* a1){
  884. T6 R=0;
  885. /*[IF*/
  886. if((((C)->_cache_keys_idx/*24*/)<(0))||(!(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))){
  887. C->_cache_user_idx=-(1);
  888. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((C)->_modulus/*8*/)]/*)*/;
  889. while (!((((C)->_cache_keys_idx/*24*/)<(0))||(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))) {
  890. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  891. }
  892. }
  893. /*FI]*/
  894. R=((C)->_cache_keys_idx/*24*/)>=(0);
  895. return R;
  896. }
  897. /*No:DICTIONARY[BASE_CLASS,STRING].cache_keys_idx*/
  898. /*No:DICTIONARY[BASE_CLASS,STRING].cache_user_idx*/
  899.  
  900.  
  901. void r61expand(T61* C){
  902. T2 _i=0;
  903. _i=/*(IRF4.6count*/(((T26*)((C)->_keys/*0*/))->_upper/*8*/)+(1)/*)*/;
  904. r61resize_buckets(C,((_i)*(2))*(3));
  905. while (!((_i)==(0))) {
  906. r62add_last((T62*)((C)->_chain/*16*/),(C)->_first_free_slot/*20*/);
  907. C->_first_free_slot=((T62*)((C)->_chain/*16*/))->_upper/*8*/;
  908. _i=(_i)-(1);
  909. }
  910. r26resize((T26*)((C)->_keys/*0*/),/*(IRF4.6count*/(((T62*)((C)->_chain/*16*/))->_upper/*8*/)+(1)/*)*/);
  911. r64resize((T64*)((C)->_store/*4*/),/*(IRF4.6count*/(((T62*)((C)->_chain/*16*/))->_upper/*8*/)+(1)/*)*/);
  912. }
  913.  
  914.  
  915. void r61resize_buckets(T61* C,T2 a1){
  916. T2 _i=0;
  917. T2 _h=0;
  918. C->_modulus=a1;
  919. r62resize((T62*)((C)->_buckets/*12*/),a1);
  920. /*[IRF3.6set_all_with*/{T62* C1=(T62*)((C)->_buckets/*12*/);
  921. T2 b1=-(1);
  922. r63set_all_with((C1)->_storage/*0*/,b1,(C1)->_upper/*8*/);
  923. }/*]*/
  924. while (!(((C)->_first_free_slot/*20*/)<(0))) {
  925. _i=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]/*)*/;
  926. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]=(-(2));
  927. /*]*/
  928. C->_first_free_slot=_i;
  929. }
  930. _i=((T62*)((C)->_chain/*16*/))->_upper/*8*/;
  931. while (!((_i)<(0))) {
  932. /*[IF*/
  933. if((/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]/*)*/)==(-(2))){
  934. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]=((C)->_first_free_slot/*20*/);
  935. /*]*/
  936. C->_first_free_slot=_i;
  937. }
  938. else{
  939. _h=(r7hash_code((T7*)(/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[_i]/*)*/)))%(a1);
  940. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]=(/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]/*)*/);
  941. /*]*/
  942. /*[IRF3.5put*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]=(_i);
  943. /*]*/
  944. }
  945. /*FI]*/
  946. _i=(_i)-(1);
  947. }
  948. }
  949. /*No:DICTIONARY[BASE_CLASS,STRING].buckets_keys_ratio*/
  950. /*No:DICTIONARY[BASE_CLASS,STRING].first_free_slot*/
  951.  
  952.  
  953. T0* r61at(T61* C,T0* a1){
  954. T0* R=NULL;
  955. /*[IF*/
  956. if((((C)->_cache_keys_idx/*24*/)<(0))||(!(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))){
  957. C->_cache_user_idx=-(1);
  958. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((C)->_modulus/*8*/)]/*)*/;
  959. while (!(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/))) {
  960. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  961. }
  962. }
  963. /*FI]*/
  964. R=/*(IRF4.6item*/(((T64*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  965. return R;
  966. }
  967. /*No:DICTIONARY[BASE_CLASS,STRING].modulus*/
  968. /*No:DICTIONARY[BASE_CLASS,STRING].count*/
  969. /*No:DICTIONARY[BASE_CLASS,STRING].chain*/
  970. /*No:DICTIONARY[BASE_CLASS,STRING].make*/
  971. /*No:DICTIONARY[BASE_CLASS,STRING].store*/
  972. /*No:DICTIONARY[BASE_CLASS,STRING].buckets*/
  973. /*No:DICTIONARY[BASE_CLASS,STRING].keys*/
  974.  
  975.  
  976. void r61put(T61* C,T0* a1,T0* a2){
  977. T2 _h=0;
  978. /*[IF*/
  979. if((((C)->_cache_keys_idx/*24*/)<(0))||(!(r7is_equal(((T7*)a2),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))){
  980. C->_cache_user_idx=-(1);
  981. _h=(r7hash_code(((T7*)a2)))%((C)->_modulus/*8*/);
  982. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]/*)*/;
  983. while (!((((C)->_cache_keys_idx/*24*/)<(0))||(r7is_equal(((T7*)a2),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))) {
  984. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  985. }
  986. /*[IF*/
  987. if(((C)->_cache_keys_idx/*24*/)<(0)){
  988. /*[IF*/
  989. if(((C)->_first_free_slot/*20*/)<(0)){
  990. r61expand(C);
  991. _h=(r7hash_code(((T7*)a2)))%((C)->_modulus/*8*/);
  992. }
  993. /*FI]*/
  994. /*[IRF3.5put*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]=(a2);
  995. /*]*/
  996. /*[IRF3.5put*/(((T64*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]=(a1);
  997. /*]*/
  998. C->_cache_keys_idx=(C)->_first_free_slot/*20*/;
  999. C->_first_free_slot=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]/*)*/;
  1000. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]=(/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]/*)*/);
  1001. /*]*/
  1002. /*[IRF3.5put*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]=((C)->_cache_keys_idx/*24*/);
  1003. /*]*/
  1004. C->_count=((C)->_count/*32*/)+(1);
  1005. }
  1006. else{
  1007. /*[IRF3.5put*/(((T64*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]=(a1);
  1008. /*]*/
  1009. }
  1010. /*FI]*/
  1011. }
  1012. else{
  1013. /*[IRF3.5put*/(((T64*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]=(a1);
  1014. /*]*/
  1015. }
  1016. /*FI]*/
  1017. }
  1018. /*No:DICTIONARY[RUN_CLASS,STRING].Default_size*/
  1019.  
  1020.  
  1021. void r320with_capacity(T320* C,T2 a1){
  1022. T2 _i=0;
  1023. {T26*n=malloc(sizeof(*n));
  1024. *n=M26;
  1025. r26make(n,a1);
  1026. C->_keys=(T0*)n;
  1027. }
  1028. {T321*n=malloc(sizeof(*n));
  1029. *n=M321;
  1030. r321make(n,a1);
  1031. C->_store=(T0*)n;
  1032. }
  1033. C->_modulus=(3)*(a1);
  1034. {T62*n=malloc(sizeof(*n));
  1035. *n=M62;
  1036. r62make(n,(C)->_modulus/*8*/);
  1037. C->_buckets=(T0*)n;
  1038. }
  1039. /*[IRF3.6set_all_with*/{T62* C1=(T62*)((C)->_buckets/*12*/);
  1040. T2 b1=-(1);
  1041. r63set_all_with((C1)->_storage/*0*/,b1,(C1)->_upper/*8*/);
  1042. }/*]*/
  1043. {T62*n=malloc(sizeof(*n));
  1044. *n=M62;
  1045. r62make(n,a1);
  1046. C->_chain=(T0*)n;
  1047. }
  1048. _i=((T62*)((C)->_chain/*16*/))->_upper/*8*/;
  1049. C->_first_free_slot=_i;
  1050. while (!((_i)<(0))) {
  1051. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]=((_i)-(1));
  1052. /*]*/
  1053. _i=(_i)-(1);
  1054. }
  1055. C->_cache_keys_idx=-(1);
  1056. C->_cache_user_idx=-(1);
  1057. C->_count=0;
  1058. }
  1059.  
  1060.  
  1061. T6 r320has(T320* C,T0* a1){
  1062. T6 R=0;
  1063. /*[IF*/
  1064. if((((C)->_cache_keys_idx/*24*/)<(0))||(!(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))){
  1065. C->_cache_user_idx=-(1);
  1066. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((C)->_modulus/*8*/)]/*)*/;
  1067. while (!((((C)->_cache_keys_idx/*24*/)<(0))||(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))) {
  1068. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  1069. }
  1070. }
  1071. /*FI]*/
  1072. R=((C)->_cache_keys_idx/*24*/)>=(0);
  1073. return R;
  1074. }
  1075. /*No:DICTIONARY[RUN_CLASS,STRING].cache_keys_idx*/
  1076. /*No:DICTIONARY[RUN_CLASS,STRING].cache_user_idx*/
  1077.  
  1078.  
  1079. void r320expand(T320* C){
  1080. T2 _i=0;
  1081. _i=/*(IRF4.6count*/(((T26*)((C)->_keys/*0*/))->_upper/*8*/)+(1)/*)*/;
  1082. r320resize_buckets(C,((_i)*(2))*(3));
  1083. while (!((_i)==(0))) {
  1084. r62add_last((T62*)((C)->_chain/*16*/),(C)->_first_free_slot/*20*/);
  1085. C->_first_free_slot=((T62*)((C)->_chain/*16*/))->_upper/*8*/;
  1086. _i=(_i)-(1);
  1087. }
  1088. r26resize((T26*)((C)->_keys/*0*/),/*(IRF4.6count*/(((T62*)((C)->_chain/*16*/))->_upper/*8*/)+(1)/*)*/);
  1089. r321resize((T321*)((C)->_store/*4*/),/*(IRF4.6count*/(((T62*)((C)->_chain/*16*/))->_upper/*8*/)+(1)/*)*/);
  1090. }
  1091.  
  1092.  
  1093. void r320resize_buckets(T320* C,T2 a1){
  1094. T2 _i=0;
  1095. T2 _h=0;
  1096. C->_modulus=a1;
  1097. r62resize((T62*)((C)->_buckets/*12*/),a1);
  1098. /*[IRF3.6set_all_with*/{T62* C1=(T62*)((C)->_buckets/*12*/);
  1099. T2 b1=-(1);
  1100. r63set_all_with((C1)->_storage/*0*/,b1,(C1)->_upper/*8*/);
  1101. }/*]*/
  1102. while (!(((C)->_first_free_slot/*20*/)<(0))) {
  1103. _i=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]/*)*/;
  1104. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]=(-(2));
  1105. /*]*/
  1106. C->_first_free_slot=_i;
  1107. }
  1108. _i=((T62*)((C)->_chain/*16*/))->_upper/*8*/;
  1109. while (!((_i)<(0))) {
  1110. /*[IF*/
  1111. if((/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]/*)*/)==(-(2))){
  1112. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]=((C)->_first_free_slot/*20*/);
  1113. /*]*/
  1114. C->_first_free_slot=_i;
  1115. }
  1116. else{
  1117. _h=(r7hash_code((T7*)(/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[_i]/*)*/)))%(a1);
  1118. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]=(/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]/*)*/);
  1119. /*]*/
  1120. /*[IRF3.5put*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]=(_i);
  1121. /*]*/
  1122. }
  1123. /*FI]*/
  1124. _i=(_i)-(1);
  1125. }
  1126. }
  1127. /*No:DICTIONARY[RUN_CLASS,STRING].buckets_keys_ratio*/
  1128.  
  1129.  
  1130. T0* r320item(T320* C,T2 a1){
  1131. T0* R=NULL;
  1132. r320set_cache_user_idx(C,a1);
  1133. R=/*(IRF4.6item*/(((T321*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  1134. return R;
  1135. }
  1136.  
  1137.  
  1138. void r320set_cache_user_idx(T320* C,T2 a1){
  1139. T2 _i=0;
  1140. /*[IF*/
  1141. if((a1)==(((C)->_cache_user_idx/*28*/)+(1))){
  1142. C->_cache_user_idx=a1;
  1143. /*[IF*/
  1144. if((/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)<(0)){
  1145. C->_cache_buckets_idx=((C)->_cache_buckets_idx/*32*/)+(1);
  1146. while (!((/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(C)->_cache_buckets_idx/*32*/]/*)*/)>=(0))) {
  1147. C->_cache_buckets_idx=((C)->_cache_buckets_idx/*32*/)+(1);
  1148. }
  1149. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(C)->_cache_buckets_idx/*32*/]/*)*/;
  1150. }
  1151. else{
  1152. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  1153. }
  1154. /*FI]*/
  1155. }
  1156.  else if((a1)==(((C)->_cache_user_idx/*28*/)-(1))){
  1157. C->_cache_user_idx=a1;
  1158. /*[IF*/
  1159. if(((C)->_cache_keys_idx/*24*/)==(/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(C)->_cache_buckets_idx/*32*/]/*)*/)){
  1160. C->_cache_buckets_idx=((C)->_cache_buckets_idx/*32*/)-(1);
  1161. while (!((/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(C)->_cache_buckets_idx/*32*/]/*)*/)>=(0))) {
  1162. C->_cache_buckets_idx=((C)->_cache_buckets_idx/*32*/)-(1);
  1163. }
  1164. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(C)->_cache_buckets_idx/*32*/]/*)*/;
  1165. while (!((/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)<(0))) {
  1166. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  1167. }
  1168. }
  1169. else{
  1170. _i=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(C)->_cache_buckets_idx/*32*/]/*)*/;
  1171. while (!((/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]/*)*/)==((C)->_cache_keys_idx/*24*/))) {
  1172. _i=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]/*)*/;
  1173. }
  1174. C->_cache_keys_idx=_i;
  1175. }
  1176. /*FI]*/
  1177. }
  1178.  else if((a1)==((C)->_cache_user_idx/*28*/)){
  1179. }
  1180.  else if((a1)==(1)){
  1181. C->_cache_user_idx=1;
  1182. C->_cache_buckets_idx=0;
  1183. while (!((/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(C)->_cache_buckets_idx/*32*/]/*)*/)>=(0))) {
  1184. C->_cache_buckets_idx=((C)->_cache_buckets_idx/*32*/)+(1);
  1185. }
  1186. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(C)->_cache_buckets_idx/*32*/]/*)*/;
  1187. }
  1188.  else if((a1)==((C)->_count/*36*/)){
  1189. C->_cache_user_idx=a1;
  1190. C->_cache_buckets_idx=((T62*)((C)->_buckets/*12*/))->_upper/*8*/;
  1191. while (!((/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(C)->_cache_buckets_idx/*32*/]/*)*/)>=(0))) {
  1192. C->_cache_buckets_idx=((C)->_cache_buckets_idx/*32*/)-(1);
  1193. }
  1194. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(C)->_cache_buckets_idx/*32*/]/*)*/;
  1195. while (!((/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)<(0))) {
  1196. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  1197. }
  1198. }
  1199. else{
  1200. r320set_cache_user_idx(C,1);
  1201. while (!(((C)->_cache_user_idx/*28*/)==(a1))) {
  1202. r320set_cache_user_idx(C,((C)->_cache_user_idx/*28*/)+(1));
  1203. }
  1204. }
  1205. /*FI]*/
  1206. }
  1207. /*No:DICTIONARY[RUN_CLASS,STRING].cache_buckets_idx*/
  1208. /*No:DICTIONARY[RUN_CLASS,STRING].first_free_slot*/
  1209.  
  1210.  
  1211. T0* r320at(T320* C,T0* a1){
  1212. T0* R=NULL;
  1213. /*[IF*/
  1214. if((((C)->_cache_keys_idx/*24*/)<(0))||(!(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))){
  1215. C->_cache_user_idx=-(1);
  1216. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((C)->_modulus/*8*/)]/*)*/;
  1217. while (!(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/))) {
  1218. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  1219. }
  1220. }
  1221. /*FI]*/
  1222. R=/*(IRF4.6item*/(((T321*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  1223. return R;
  1224. }
  1225. /*No:DICTIONARY[RUN_CLASS,STRING].modulus*/
  1226. /*No:DICTIONARY[RUN_CLASS,STRING].count*/
  1227. /*No:DICTIONARY[RUN_CLASS,STRING].chain*/
  1228. /*No:DICTIONARY[RUN_CLASS,STRING].make*/
  1229. /*No:DICTIONARY[RUN_CLASS,STRING].store*/
  1230. /*No:DICTIONARY[RUN_CLASS,STRING].buckets*/
  1231. /*No:DICTIONARY[RUN_CLASS,STRING].keys*/
  1232.  
  1233.  
  1234. void r320put(T320* C,T0* a1,T0* a2){
  1235. T2 _h=0;
  1236. /*[IF*/
  1237. if((((C)->_cache_keys_idx/*24*/)<(0))||(!(r7is_equal(((T7*)a2),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))){
  1238. C->_cache_user_idx=-(1);
  1239. _h=(r7hash_code(((T7*)a2)))%((C)->_modulus/*8*/);
  1240. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]/*)*/;
  1241. while (!((((C)->_cache_keys_idx/*24*/)<(0))||(r7is_equal(((T7*)a2),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))) {
  1242. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  1243. }
  1244. /*[IF*/
  1245. if(((C)->_cache_keys_idx/*24*/)<(0)){
  1246. /*[IF*/
  1247. if(((C)->_first_free_slot/*20*/)<(0)){
  1248. r320expand(C);
  1249. _h=(r7hash_code(((T7*)a2)))%((C)->_modulus/*8*/);
  1250. }
  1251. /*FI]*/
  1252. /*[IRF3.5put*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]=(a2);
  1253. /*]*/
  1254. /*[IRF3.5put*/(((T321*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]=(a1);
  1255. /*]*/
  1256. C->_cache_keys_idx=(C)->_first_free_slot/*20*/;
  1257. C->_first_free_slot=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]/*)*/;
  1258. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]=(/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]/*)*/);
  1259. /*]*/
  1260. /*[IRF3.5put*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]=((C)->_cache_keys_idx/*24*/);
  1261. /*]*/
  1262. C->_count=((C)->_count/*36*/)+(1);
  1263. }
  1264. else{
  1265. /*[IRF3.5put*/(((T321*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]=(a1);
  1266. /*]*/
  1267. }
  1268. /*FI]*/
  1269. }
  1270. else{
  1271. /*[IRF3.5put*/(((T321*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]=(a1);
  1272. /*]*/
  1273. }
  1274. /*FI]*/
  1275. }
  1276. /*No:DICTIONARY[E_FEATURE,STRING].Default_size*/
  1277.  
  1278.  
  1279. void r86with_capacity(T86* C,T2 a1){
  1280. T2 _i=0;
  1281. {T26*n=malloc(sizeof(*n));
  1282. *n=M26;
  1283. r26make(n,a1);
  1284. C->_keys=(T0*)n;
  1285. }
  1286. {T92*n=malloc(sizeof(*n));
  1287. *n=M92;
  1288. r92make(n,a1);
  1289. C->_store=(T0*)n;
  1290. }
  1291. C->_modulus=(3)*(a1);
  1292. {T62*n=malloc(sizeof(*n));
  1293. *n=M62;
  1294. r62make(n,(C)->_modulus/*8*/);
  1295. C->_buckets=(T0*)n;
  1296. }
  1297. /*[IRF3.6set_all_with*/{T62* C1=(T62*)((C)->_buckets/*12*/);
  1298. T2 b1=-(1);
  1299. r63set_all_with((C1)->_storage/*0*/,b1,(C1)->_upper/*8*/);
  1300. }/*]*/
  1301. {T62*n=malloc(sizeof(*n));
  1302. *n=M62;
  1303. r62make(n,a1);
  1304. C->_chain=(T0*)n;
  1305. }
  1306. _i=((T62*)((C)->_chain/*16*/))->_upper/*8*/;
  1307. C->_first_free_slot=_i;
  1308. while (!((_i)<(0))) {
  1309. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]=((_i)-(1));
  1310. /*]*/
  1311. _i=(_i)-(1);
  1312. }
  1313. C->_cache_keys_idx=-(1);
  1314. C->_cache_user_idx=-(1);
  1315. C->_count=0;
  1316. }
  1317.  
  1318.  
  1319. T6 r86has(T86* C,T0* a1){
  1320. T6 R=0;
  1321. /*[IF*/
  1322. if((((C)->_cache_keys_idx/*24*/)<(0))||(!(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))){
  1323. C->_cache_user_idx=-(1);
  1324. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((C)->_modulus/*8*/)]/*)*/;
  1325. while (!((((C)->_cache_keys_idx/*24*/)<(0))||(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))) {
  1326. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  1327. }
  1328. }
  1329. /*FI]*/
  1330. R=((C)->_cache_keys_idx/*24*/)>=(0);
  1331. return R;
  1332. }
  1333. /*No:DICTIONARY[E_FEATURE,STRING].cache_user_idx*/
  1334. /*No:DICTIONARY[E_FEATURE,STRING].cache_keys_idx*/
  1335.  
  1336.  
  1337. void r86expand(T86* C){
  1338. T2 _i=0;
  1339. _i=/*(IRF4.6count*/(((T26*)((C)->_keys/*0*/))->_upper/*8*/)+(1)/*)*/;
  1340. r86resize_buckets(C,((_i)*(2))*(3));
  1341. while (!((_i)==(0))) {
  1342. r62add_last((T62*)((C)->_chain/*16*/),(C)->_first_free_slot/*20*/);
  1343. C->_first_free_slot=((T62*)((C)->_chain/*16*/))->_upper/*8*/;
  1344. _i=(_i)-(1);
  1345. }
  1346. r26resize((T26*)((C)->_keys/*0*/),/*(IRF4.6count*/(((T62*)((C)->_chain/*16*/))->_upper/*8*/)+(1)/*)*/);
  1347. r92resize((T92*)((C)->_store/*4*/),/*(IRF4.6count*/(((T62*)((C)->_chain/*16*/))->_upper/*8*/)+(1)/*)*/);
  1348. }
  1349.  
  1350.  
  1351. void r86resize_buckets(T86* C,T2 a1){
  1352. T2 _i=0;
  1353. T2 _h=0;
  1354. C->_modulus=a1;
  1355. r62resize((T62*)((C)->_buckets/*12*/),a1);
  1356. /*[IRF3.6set_all_with*/{T62* C1=(T62*)((C)->_buckets/*12*/);
  1357. T2 b1=-(1);
  1358. r63set_all_with((C1)->_storage/*0*/,b1,(C1)->_upper/*8*/);
  1359. }/*]*/
  1360. while (!(((C)->_first_free_slot/*20*/)<(0))) {
  1361. _i=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]/*)*/;
  1362. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]=(-(2));
  1363. /*]*/
  1364. C->_first_free_slot=_i;
  1365. }
  1366. _i=((T62*)((C)->_chain/*16*/))->_upper/*8*/;
  1367. while (!((_i)<(0))) {
  1368. /*[IF*/
  1369. if((/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]/*)*/)==(-(2))){
  1370. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]=((C)->_first_free_slot/*20*/);
  1371. /*]*/
  1372. C->_first_free_slot=_i;
  1373. }
  1374. else{
  1375. _h=(r7hash_code((T7*)(/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[_i]/*)*/)))%(a1);
  1376. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[_i]=(/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]/*)*/);
  1377. /*]*/
  1378. /*[IRF3.5put*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]=(_i);
  1379. /*]*/
  1380. }
  1381. /*FI]*/
  1382. _i=(_i)-(1);
  1383. }
  1384. }
  1385. /*No:DICTIONARY[E_FEATURE,STRING].buckets_keys_ratio*/
  1386. /*No:DICTIONARY[E_FEATURE,STRING].first_free_slot*/
  1387.  
  1388.  
  1389. T0* r86at(T86* C,T0* a1){
  1390. T0* R=NULL;
  1391. /*[IF*/
  1392. if((((C)->_cache_keys_idx/*24*/)<(0))||(!(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))){
  1393. C->_cache_user_idx=-(1);
  1394. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[(r7hash_code(((T7*)a1)))%((C)->_modulus/*8*/)]/*)*/;
  1395. while (!(r7is_equal(((T7*)a1),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/))) {
  1396. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  1397. }
  1398. }
  1399. /*FI]*/
  1400. R=/*(IRF4.6item*/(((T92*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  1401. return R;
  1402. }
  1403. /*No:DICTIONARY[E_FEATURE,STRING].modulus*/
  1404. /*No:DICTIONARY[E_FEATURE,STRING].count*/
  1405. /*No:DICTIONARY[E_FEATURE,STRING].chain*/
  1406. /*No:DICTIONARY[E_FEATURE,STRING].make*/
  1407. /*No:DICTIONARY[E_FEATURE,STRING].store*/
  1408. /*No:DICTIONARY[E_FEATURE,STRING].buckets*/
  1409. /*No:DICTIONARY[E_FEATURE,STRING].keys*/
  1410.  
  1411.  
  1412. void r86put(T86* C,T0* a1,T0* a2){
  1413. T2 _h=0;
  1414. /*[IF*/
  1415. if((((C)->_cache_keys_idx/*24*/)<(0))||(!(r7is_equal(((T7*)a2),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))){
  1416. C->_cache_user_idx=-(1);
  1417. _h=(r7hash_code(((T7*)a2)))%((C)->_modulus/*8*/);
  1418. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]/*)*/;
  1419. while (!((((C)->_cache_keys_idx/*24*/)<(0))||(r7is_equal(((T7*)a2),/*(IRF4.6item*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/)))) {
  1420. C->_cache_keys_idx=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]/*)*/;
  1421. }
  1422. /*[IF*/
  1423. if(((C)->_cache_keys_idx/*24*/)<(0)){
  1424. /*[IF*/
  1425. if(((C)->_first_free_slot/*20*/)<(0)){
  1426. r86expand(C);
  1427. _h=(r7hash_code(((T7*)a2)))%((C)->_modulus/*8*/);
  1428. }
  1429. /*FI]*/
  1430. /*[IRF3.5put*/(((T26*)((C)->_keys/*0*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]=(a2);
  1431. /*]*/
  1432. /*[IRF3.5put*/(((T92*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]=(a1);
  1433. /*]*/
  1434. C->_cache_keys_idx=(C)->_first_free_slot/*20*/;
  1435. C->_first_free_slot=/*(IRF4.6item*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_first_free_slot/*20*/]/*)*/;
  1436. /*[IRF3.5put*/(((T62*)((C)->_chain/*16*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]=(/*(IRF4.6item*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]/*)*/);
  1437. /*]*/
  1438. /*[IRF3.5put*/(((T62*)((C)->_buckets/*12*/))->_storage/*0*/)[_h]=((C)->_cache_keys_idx/*24*/);
  1439. /*]*/
  1440. C->_count=((C)->_count/*32*/)+(1);
  1441. }
  1442. else{
  1443. /*[IRF3.5put*/(((T92*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]=(a1);
  1444. /*]*/
  1445. }
  1446. /*FI]*/
  1447. }
  1448. else{
  1449. /*[IRF3.5put*/(((T92*)((C)->_store/*4*/))->_storage/*0*/)[(C)->_cache_keys_idx/*24*/]=(a1);
  1450. /*]*/
  1451. }
  1452. /*FI]*/
  1453. }
  1454.  
  1455.